The Internet provides a domain name system (“DNS”) that maps domain names to Internet protocol addresses (“IP addresses”) associated with the domain names. A user who wants to view a web page associated with a domain name may enter the domain name (e.g., “acme.com”) in the address line of a browser. Additionally, programs other than browsers may use domain names to identify computers that provide services other than serving web pages. Since the servers of the Internet are addressed by IP addresses, rather than domain names, the browser (or other client program) needs to convert the domain name to an IP address (e.g., 209.19.43.100). The browser submits a resolution request that specifies the domain name to a local domain name server (e.g., provided by an ISP) that is part of the DNS. The local domain name server may be identified in a configuration file of the client computer executing the browser. The local domain name server checks a local cache to determine whether it has a mapping of that domain name to IP address. If so, it returns the IP address to the browser. If not, it forwards the resolution request to a root domain name server. The root domain name server contains a mapping of each top-level domain name (e.g., “com”) to its name server(s). The root domain name server responds to the resolution request by providing the name of the top-level domain name server to the local domain name server. The local domain name server caches the name of the top-level domain name server. The local domain name server then sends the resolution request to the top-level domain name server and receives (and may cache) the name of the domain name server for the second-level domain name (e.g., “acme.com”). The local domain name server forwards the resolution request to the domain name server for the second-level domain name. The domain name server returns the IP address associated with the second-level domain name. Alternatively, it may return the name of the domain name server for the third-level domain name (e.g., “www.acme.com”), and the local domain name server may repeat the process for each level of domain name. Eventually, the local domain name server sends the IP address of the domain name to the client computer. The browser executing at the client computer then sends an HTTP request message with a uniform resource identifier that includes the domain name to that IP address.
If a domain name is not registered with the DNS, then the domain name server may return a not registered indication to the browser, which may display an error message. Alternatively, the domain name server may, but not typically, return an IP address of a web site, for example, through which that domain name can be registered.
To facilitate communications between Internet users, some companies provide an instant messaging service through which two users can send messages directly to each other without having to use an intermediate server to coordinate sending the messages. (Some instant messaging services do use an intermediate server to provide benefits not available when messages are sent directly between users.) To use such an instant messaging service, a user needs to register with an instant messaging system by providing a user name (e.g., electronic mail address or some other identifier) and password. Once a user is registered, the user can then sign onto or connect to the instant messaging system and send messages to and receive messages from other users who are also signed onto the instant messaging system. When a user signs onto the instant messaging system, the instant messaging system records the IP address associated with the user's computer. Some users' computers may have static IP addresses, while other users' computers may have dynamic IP addresses that are assigned each time a user initiates an Internet session. During the signon process, the instant messaging system generates a mapping between the user name and their current IP address. When a user wants to send a message, the sending user sends a request to the instant messaging system to provide the current IP address for a user name to which a message is to be sent. The instant messaging system looks up the IP address for that user name and provides the IP address to the sending user. The sending user then sends the message directly to that IP address. In other instant messaging services, the message is sent to the instant messaging system, which forwards the message to the recipient user. In either case, the instant messaging system keeps track of the current IP address of all users currently signed onto the instant messaging system.
Telephone calls can also be conducted over the Internet. For example, a user may download a telephone plug-in for their browser or a user may browse to a Java-enabled web site that automatically downloads telephone software. A user can use a telephone plug-in to enter a telephone number in a field of a web page. The plug-in then sends a message to a telephone server to place a call via the plain old telephone system (“pots”) to the entered telephone number. When the call has been established, the telephone server and the telephone plug-in coordinate the sending of the voice information from the caller over the Internet to the telephone server and onto the callee and back from the callee to the telephone server and then to the plug-in over the Internet. The plug-in is responsible for digitizing the voice information of the caller so it can be transmitted via the Internet to the telephone server and for generating the audio associated with the digitized voice information received via the Internet from the telephone server. The use of telephone over the Internet has the potential to reduce long distance charges associated with telephone calls because the telephone servers may be positioned at various locales. A request to place a telephone call may be routed to the appropriate telephone server so that only local calls need be placed.
It would be desirable to have a technique that would allow domain name servers to support server, computer, and other devices whose IP addresses are dynamically assigned, rather than just statically assigned. It would also be desirable to have a technique that would allow for a more user-friendly way to dial a telephone number via the Internet. Finally, it would be desirable to have a technique that would provide more useful information when a user enters an unregistered domain name.